﻿/* 
 * BtCommLib - the OpenWebNet .NET Library
 *
 * Copyright (C) 2011 BTicino S.p.A.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

using BTicino.BtCommLib.Attributes;
using BTicino.BtCommLib.Mappers;
using BTicino.BtCommLib.Domain.Util;

namespace BTicino.BtCommLib.Domain.HighLevel
{
    /// <summary>
    /// Class to manage Request Message with Dimension
    /// </summary>
    [MsgType(BTOpenMsgType.RequestWriteDimension)]
    public class DefaultMsgRequestWriteDimension
    {

        #region Protected Data Field

        [Who, Mapper(typeof(DefaultWhoMapper))]
        protected string _who;

        [Where, Mapper(typeof(DefaultWhereMapper))]
        protected string _where;

        [Dimension, Mapper(typeof(DefaultDimensionMapper))]
        protected string _dimension; 

        [DimValues, Mapper(typeof(DefaultDimValuesMapper))]
        protected string[] _dimValues; 

        [Raw]
        protected string _openRawMsg;

        #endregion

        #region GET /SET methods

        public string Who
        {
            get { return _who; }
            set { _who = value; }
        }

        public string Where
        {
            get { return _where; }
            set { _where = value; }
        }

        public string Dimension
        {
            get { return _dimension; }
            set { _dimension = value; }
        }

        public string[] DimValues
        {
            get { return _dimValues; }
            set { _dimValues = value; }
        }

        public string OpenRawMsg
        {
            get { return _openRawMsg; }
            set { _openRawMsg = value; }
        }

    }

        #endregion
}
